package com.ruoyi.order.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ruoyi.order.domain.MgOrder;
import com.translate.mapper.IBaseMapper;

/**
 * 订单Mapper接口
 * 
 * @author ruoyi
 * @date 2023-12-24
 */
public interface MgOrderMapper extends IBaseMapper<MgOrder>
{
	/**
	 * 获取余额支付的订单
	 * @param <P>
	 * @param param
	 * @return
	 */
   <P> List<MgOrder> selectListByUserIdAndRecharge(P param);
   
   /**
    * tab 栏搜索
    * @param params
    * @return
    */
   List<MgOrder> selectListByTab(int[] params);
   
   /**
    * 加锁
    * @param id
    * @return
    */
   MgOrder selectOrderForUpdate(int id);
   
   /**
    * 编辑 查看订单
    * @param order
    * @return
    */
   List<MgOrder> selectListByEdit(MgOrder order);
   
   /**
    * 编辑查询订单
    * @param order
    * @return
    */
   List<MgOrder> selectListByEditQuery(MgOrder order);
   
   /**
    * 根据支付管理获服务类类型id
    * @param payManagerId
    * @return
    */
   List<MgOrder> selectOrderByPayManagerId(int[] payManagerId, int enableLock);
   
   /**
    * 已支付
    * @param id
    * @return
    */
   <U>int updateAlreadyPay(U data);
   
   /**
    * 计算当月字数
    * @return
    */
   Integer computerWordSizeByThisMoth(@Param("serverIds") List<Integer> serverIds,
		   @Param("processed") long processed,
		  @Param("startTime") long startTime,  @Param("endTime") long endTime
		   );
   
   
   /**
    * 更新teamId
    * @param teamId
    * @param userId
    * @return
    */
   int updateTeamId(int teamId, int userId);


    int cancelTicket(int userId);
}
